package com.xd.dubai.api.entity;

import com.dt.dubai.core.comm.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.*;

import javax.persistence.Table;
import javax.validation.constraints.*;

import java.util.Date;

/*
 * 个人基本信息表
 */

@Data
@Table(name = "dt_api_healthy_info")
@EqualsAndHashCode(callSuper = false)
public class ApiHealthyInfoEntity extends BaseEntity {

    //健康档案记录ID
    Long healthRecordRecordId;

    //姓名
    @Length(min = 0, max = 20, message = "userName参数最大长度不20")
    String userName;

    //编号
    @Length(min = 0, max = 50, message = "userCode参数最大长度不50")
    String userCode;

    //性别 0-未知,1-男,2-女
    Integer sex;

    //出生日期
    Date dateOfBirth;

    //身份证
    @Length(min = 0, max = 18, message = "identityCard参数最大长度不18")
    String identityCard;

    //工作单位
    @Length(min = 0, max = 60, message = "workCompanyName参数最大长度不60")
    String workCompanyName;

    //本人电话
    @Length(min = 0, max = 11, message = "mobilePhone参数最大长度不11")
    String mobilePhone;

    //联系人姓名
    @Length(min = 0, max = 20, message = "contactsName参数最大长度不20")
    String contactsName;

    //联系人电话
    @Length(min = 0, max = 11, message = "contactsMobile参数最大长度不11")
    String contactsMobile;

    //常住类型 1-户籍,2-非户籍
    Integer residenceType;

    //民族
    @Length(min = 0, max = 50, message = "nation参数最大长度不50")
    String nation;

    //血型 1-A型,2-B型,3-O型,4-AB型,5-不详
    Integer bloodType;

    //RH阴性 1-否,2-是,3-不详
    Integer rHType;

    //文化程度 1-文盲及半文盲,2-小学,3-初中,4-高中/技校/中专,5-大学专科及以上,6-不详
    Integer education;

    //职业 1-国家机关、党群组织、企业、事业单位负责人,2-专业技术人员,3-办事人员和有关人员,4-商业、服务员人员,5-农、林、牧、渔、水利业生产人员,6-生产、运输设备操作人员及有关人员,7-军人,8-不便分类的其他从业人员
    Integer profession;

    //婚姻状况 1-未婚,2-已婚,3-丧偶,4-离婚,5-未说明的婚姻状况
    Integer maritalStatus;

    //医疗费用支付方式
    @Length(min = 0, max = 50, message = "medicalFeePay参数最大长度不50")
    String medicalFeePay;

    //药物过敏史
    @Length(min = 0, max = 50, message = "drugAllergy参数最大长度不50")
    String drugAllergy;

    //暴露史
    @Length(min = 0, max = 50, message = "exposureHistory参数最大长度不50")
    String exposureHistory;

    //疾病
    @Length(min = 0, max = 200, message = "disease参数最大长度不200")
    String disease;

    //手术
    @Length(min = 0, max = 200, message = "operationInfo参数最大长度不200")
    String operationInfo;

    //外伤
    @Length(min = 0, max = 200, message = "woundInfo参数最大长度不200")
    String woundInfo;

    //输血
    @Length(min = 0, max = 200, message = "bloodTransfusionInfo参数最大长度不200")
    String bloodTransfusionInfo;

    //家族史 父亲
    @Length(min = 0, max = 50, message = "fatherHistory参数最大长度不50")
    String fatherHistory;

    //家族史 母亲
    @Length(min = 0, max = 50, message = "motherHistory参数最大长度不50")
    String motherHistory;

    //家族史 兄弟姐妹
    @Length(min = 0, max = 50, message = "brotherHistory参数最大长度不50")
    String brotherHistory;

    //家族史 子女
    @Length(min = 0, max = 50, message = "childHistory参数最大长度不50")
    String childHistory;

    //遗传病史
    @Length(min = 0, max = 200, message = "geneticDiseaseHistory参数最大长度不200")
    String geneticDiseaseHistory;

    //残疾情况
    @Length(min = 0, max = 50, message = "disability参数最大长度不50")
    String disability;

    //厨房排风设施 1-无,2-油烟机,3-换气扇,4-烟囱
    Integer equipment;

    //燃料类型
    @Length(min = 0, max = 50, message = "fuelType参数最大长度不50")
    String fuelType;

    //饮水
    @Length(min = 0, max = 50, message = "water参数最大长度不50")
    String water;

    //厕所 1-卫生厕所,2-一格或二格粪池式,3-马桶,4-露天粪坑,5-简易棚厕
    Integer toilet;

    //禽畜栏 1-单设,2-室内,3-室外
    Integer poultryStall;


}
